home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib05.dsk / LISTING FORMATTER MAKER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  68 lines

  1. 1  REM  ********************************
  2. 2  REM  *    LISTING FORMATTER         *
  3. 3  REM  *   BY TONY S. DAHBURA         *
  4. 4  REM  *   COPYRIGHT (C) 1981 BY      *
  5. 5  REM  *     MICRO-SPARC, INC.        *
  6. 6  REM  *     LINCOLN, MA. 01773       *
  7. 7  REM  ********************************
  8. 10 D$ =  CHR$(4): TEXT : CALL  -936: POKE 33,30
  9. 20  PRINT "CREATING EXEC FILE FOR"
  10. 30  PRINT "LISTING FORMATTER"
  11. 40  PRINT 
  12. 50  PRINT 
  13. 60  PRINT D$;"OPEN LISTING FORMATTER"
  14. 70  PRINT D$;"DELETE LISTING FORMATTER"
  15. 80  PRINT D$;"OPEN LISTING FORMATTER"
  16. 90  PRINT D$;"WRITE LISTING FORMATTER"
  17. 100  PRINT "NOMON I,O,C"
  18. 110  PRINT "SPEED=255"
  19. 120  LIST 62999,63430
  20. 130  PRINT 
  21. 140  PRINT D$;"CLOSE LISTING FORMATTER"
  22. 150  TEXT 
  23. 160  END 
  24. 62999  END 
  25. 63000  TEXT : CALL  -936: CLEAR :C$ =  CHR$(4): PRINT "**** PROGRAM LISTING FORMATTER ****": PRINT "****    BY  TONY S. DAHBURA    ****"
  26. 63010  POKE 34,3: PRINT : PRINT : CALL  -936: DIM D$(107): GOSUB 63250
  27. 63020  PRINT : INPUT "SLOT OF PRINTER (0 FOR SCREEN) ";B: IF B <0  OR B >7  THEN 63020
  28. 63030  PRINT : INPUT "TURN ON PRINTER AND PRESS 'RETURN' ";A$: PRINT C$;"PR#";B: PRINT : PRINT  CHR$(19)
  29. 63040  PRINT : INPUT "SET TOP OF FORM ETC. AND PRESS 'RETURN' ";A$: PRINT : CALL  -936
  30. 63050  INPUT "# OF LINES AT TOP OF PAGE ";E: PRINT : INPUT "# OF LINES AT BOTTOM OF PAGE ";F: PRINT : PRINT : INPUT "LEFT MARGIN ";G: PRINT : INPUT "RIGHT MARGIN ";H:I = H -G: IF I < = 0  THEN 63050
  31. 63060  PRINT : INPUT "# OF LINES PER PAGE ";J: CALL  -936: PRINT : PRINT "IF YOU PRESS ESC DURING PRINTING": PRINT "YOU MAY HALT LISTING": PRINT : INPUT "PRESS 'RETURN' TO START ";A$:A$ = ""
  32. 63070  POKE  -16368,0:K = 0: PRINT  CHR$(17): FOR P = 1 TO E: PRINT : NEXT 
  33. 63080 L =  PEEK(104) *256 + PEEK(103):M =  PEEK(176) *256 + PEEK(175):N = 256 * PEEK(L +1) + PEEK(L)
  34. 63090 A =  PEEK(L +3) *256 + PEEK(L +2):A$ =  STR$(A):A$ = A$ +" ": IF A <10  THEN A$ = A$ +" "
  35. 63100  IF A =  >62999  THEN C = 32:L = M: GOTO 63140
  36. 63110 L = L +4
  37. 63120 C =  PEEK(L): IF  PEEK( -16384) >127  THEN  GOTO 63420
  38. 63130  IF C >127  AND C <235  THEN  GOSUB 63220: GOTO 63150
  39. 63140 A$ = A$ + CHR$(C): IF L =  >M  THEN  PRINT : PRINT : PRINT  CHR$(12): PRINT : PRINT : PRINT C$;"PR#0": PRINT : PRINT : PRINT "LISTING IS COMPLETE": PRINT : PRINT "DONE": TEXT : END 
  40. 63150  IF L +1 = N  THEN 63180
  41. 63160  IF L >N  THEN  PRINT "ERROR": PRINT A$: STOP 
  42. 63170 L = L +1: GOTO 63120
  43. 63180 N = 256 * PEEK(N +1) + PEEK(N):L = L +1: GOTO 63340
  44. 63190 L = L +2:A$ = "":A =  PEEK(L) + PEEK(L +1) *256:A$ =  STR$(A):A$ = A$ +" ": IF A <10  THEN A$ = A$ +" "
  45. 63200  IF A =  >62999  THEN C = 32:L = M: GOTO 63140
  46. 63210 L = L +2: GOTO 63120
  47. 63220 A$ = A$ +D$(C -127): IF D$(C -127) = "HIMEM"  THEN A$ = A$ +":"
  48. 63230  IF D$(C -127) = "LOMEM"  THEN A$ = A$ +":"
  49. 63240  RETURN 
  50. 63250  RESTORE 
  51. 63260  READ D$(1): IF  PEEK(123) + PEEK(124) *256 = 63290  THEN 63280
  52. 63270  GOTO 63260
  53. 63280  FOR O = 2 TO 107: READ D$(O): NEXT : RETURN 
  54. 63290  DATA END,FOR,NEXT,DATA,INPUT,DEL,DIM,READ,GR,TEXT,PR#,IN#,CALL,PLOT,HLIN,VLIN,HGR2,HGR,HCOLOR=,HPLOT,DRAW,XDRAW
  55. 63300  DATA HTAB,HOME,ROT=,SCALE=,SHLOAD,TRACE,NOTRACE,NORMAL,INVERSE,FLASH,COLOR=,POP,VTAB,HIMEM,LOMEM,ONERR
  56. 63310  DATA RESUME,RECALL,STORE,SPEED=,LET,GOTO,RUN,IF,RESTORE,&,GOSUB,RETURN,REM,STOP,ON,WAIT
  57. 63320  DATA LOAD,SAVE,DEF,POKE,PRINT,CONT,LIST,CLEAR,GET,NEW,TAB(,TO,FN,SPC(,THEN,AT,NOT,STEP,+,-,*,/,^,AND,OR,>,=,<,SGN,INT,ABS,USR,FRE,SCRN(,PDL,POS,SQR,RND
  58. 63330  DATA LOG,EXP,COS,SIN,TAN,ATN,PEEK,LEN,STR$,VAL,ASC,CHR$,LEFT$,RIGHT$,MID$
  59. 63340  IF  LEN(A$) >I  THEN 63390
  60. 63350  PRINT  TAB( G);A$:K = K +1
  61. 63360  IF K =  >J  THEN  GOSUB 63380: GOTO 63190
  62. 63370  GOTO 63190
  63. 63380  FOR P = 1 TO F: PRINT : NEXT : FOR P = 1 TO E: PRINT : NEXT :K = 0: RETURN 
  64. 63390 B$ = A$:D = 1:A$ =  LEFT$(A$,I): PRINT  TAB( G);A$:K = K +1: IF K =  >J  THEN  GOSUB 63380
  65. 63400 A$ =  RIGHT$(B$, LEN(B$) -I *D): IF  LEN(A$) >I  THEN A$ =  MID$ (B$,I *D,I): PRINT  TAB( G);A$:D = D +1: GOTO 63400
  66. 63410  PRINT  TAB( G);A$:K = K +D: GOTO 63360
  67. 63420  IF  PEEK( -16384) = 155  THEN  PRINT : PRINT : PRINT  CHR$(12): PRINT : PRINT : PRINT C$;"PR#0": PRINT : PRINT : PRINT "LISTING TERMINATED": TEXT : END 
  68. 63430  POKE  -16368,0: GOTO 63130